# Copyright (c) 2024, NVIDIA CORPORATION.

from rmm.pylibrmm.device_buffer import DeviceBuffer

from pylibcudf.column import Column
from pylibcudf.types import MaskState

def copy_bitmask(col: Column) -> DeviceBuffer: ...
def bitmask_allocation_size_bytes(number_of_bits: int) -> int: ...
def create_null_mask(
    size: int, state: MaskState = MaskState.UNINITIALIZED
) -> DeviceBuffer: ...
def bitmask_and(columns: list[Column]) -> tuple[DeviceBuffer, int]: ...
def bitmask_or(columns: list[Column]) -> tuple[DeviceBuffer, int]: ...
def null_count(bitmask: int, start: int, stop: int) -> int: ...
